عشق؟! & دهکده دانلود
عشق و دوستی... & دانلودpdf-music-clip-narmafzar
درباره وبلاگ


شب سردی ست و هوا منتظر باران است وقت خواب است و دلم پیش تو سرگردان است شب بخیر ای نفست شرح پریشانی من ماه پیشانی من دلبر بارانی من
نويسندگان
پنج شنبه 13 مهر 1391برچسب:, :: 14:20 :: نويسنده : abbaskazemi naini.k

با سلام

چه زبانی را انتخاب کنم؟

کدام زبان برنامه‎نویسی خوب است؟

چه زبانی بهتر است؟

بسیاری از افراد در پیام‎ها و نظرات ارسالی خود سوالاتی از این دست داشته‎اند که نمی‎توان به آن پاسخ یکسانی داد و البته هر فردی هم توصیه‎هایی در این رابطه دارد از دیدگاه‎های متفاوتی این سوالات بحث شده است. من هم تصمیم گرفتم برای پاسخگویی به سوالات این عزیزان اینجا پستی بزنم و این سوالات را از منظر متفاوتی پاسخ دهم.

امیدوارم از این مطلب استفاده مورد نظر را ببرید. نکته آغازی اینکه هر زبانی برای منظوری خاص طراحی شده است بگذریم که در ایران اکثر برنامه‎نویسان از یک زبان برای نوشتن تمام برنامه‎های سفارش شده خود استفاده می‎کنند اما هر زبان مزایا و معایبی دارد که قبلا در پستهایی به آن اشاره کرده‎ام لیک این مطلب هم معیارهای انتخاب را برای هر شخص مطرح می‎نماید.

در مورد انتخاب زبان برنامه‎نویسی برای یادگیری چندین روش هست که با پاسخ دادن به سوالات زیر می‎تونی به جوابت برسی.‎تونی به جوابت برسی.

قبل از اینکه سوالات رو بنویسم باید این مساله رو عرض کنم که توی وب با جستجو می‎تونی نظراتی رو برای برنامه‎نویسی ببینی اما این نظرات اکثرا دید یک سری برنامه‎نویس هست که به زبان خودشون (زبانی که با اون برنامه‎نویسی می‎کنن) تعصب خاصی دارند اما شما برای اینکه تصمیم درستی بگیری باید حتما نظرات موافق و مخالف رو با هم در مورد زبانهای برنامه نویسی بخونی که این خیلی مهمه و بدون پیش‎فرض‎های ذهنی و تعصب در مورد آینده تصمیم‎گیری کنی.
 

 فردي كه دنياي كامپيوتر مديون زبان طراحي شده ي بسيار بزرگ اونه.


كسي كه همه ي برنامه نويسا با زبان اون به بزرگي رسيدن.

كسي كه سيستم عامل ها رو با زبان اون بازنويسي كردن( به غير از سولاريس solaris).

...

و شايد بتوان او را مخترع چرخ در دنياي كامپيوتر بناميم.

به هر حال روحش شاد...

دنیس با دنیا هم خداحافظی کرده

خداحافظي دنيس

اميدواريم دنيا ( مخصوصا دنياي كامپيوتر افرادي مثل دنيس باز هم به خودش ببينه).

منبع: سايت برنامه نويس http://barnamenevis.org
 

پنج شنبه 13 مهر 1391برچسب:, :: 14:19 :: نويسنده : abbaskazemi naini.k

یکی از نویسندگان و متفکران کامپیوتری محبوب من جول اسپالسکی است، او مقاله معروفی دارد که آغاز سال ۲۰۰۵ یعنی ۳ سال پیش نوشته است که متن کامل آن را باهم مرور می کنیم
اگر از برنامه نویسی لذت می برید خدا را شکر کنید زیرا از جمله محدود افراد بسیار خوش شانسی هستید که با انجام دادن کاری که دوستش دارید می توانید زندگی خوبی بسازید. بیشتر مردم اینقدر خوش شانس نیستند. این ایده که “عاشق کارتان باشید” مفهومی کاملا نو است. در گذشته مردم فکر می کردند که کار چیزی ناگوار است که انجامش می دهید که پول در بیاورید تا با آن کاری را که واقعا دوست دارید انجام دهید ، آنهم پس از بازنشستگی در سن ۶۵ سالگی به این شرط که پول لازم را داشتید و بیش از حد پیر و ناتوان نشده بودید و زانوها و چشم سالن داشتید و می توانستید بدون اینکه نفستان بند آید بیست قدم را بروید و هزار اما و اگر دیگر.
 

پنج شنبه 13 مهر 1391برچسب:, :: 14:17 :: نويسنده : abbaskazemi naini.k

زمان کدنویسی در بسیاری از مواقع انتخاب بین یک یا چند راه پیش پای برنامه نویس قرار دارد و به اصطلاح بین چند گزینه باید یکی انتخاب شود. یکی از عمده تسهیلاتی که در اکثر (یا بهتر بگوییم تمام) زبانهای برنامه نویسی به طور پیش فرض در اختیار برنامه نویس قرار دارد همان گزینش می باشد که در اکثر کتب فارسی آن را، شرط ترجمه نموده اند ولی کلمه ی «گزینش» بهتر و درست تر می باشد به دلیل اینکه بر شرایط بهتری دلالت می نماید و دسته بندی بهتر و کامل تری به دست می دهد. در زبانهای برنامه نویسی دلفی و پاسکال هم یک سری کلمات رزرو شده(کلمات کلیدی) برای نوشتن و مدیریت گزینش ها وجود دارد که به دلیل یکسان بودن، آنها را در یک پست بررسی می نماییم.

عمده ترین دستورات گزینشی به شکل زیر دسته بندی می گردد:

الف) دستور گزینشی if (که خود به زیر مجموعه هایی تقسیم می شود.)

الف - ۱) گزینش if

الف - ۲) گزینش if … else

الف - ۳) گزینش if … else if… else if …

ب) دستور گزینشی case

همانطور که از توضیحات نمایان می گردد هر دو دستور گزینشی، برای گزینش بین شرایطی معین استفاده دارد که در آن برنامه نویس به مدیریت کردن شرایط می پردازد و بسته به برنامه ای که می نویسد ممکن است یک، دو و یا چندین شرایط مختلف را در برنامه ی خود در نظر بگیرد و به اداره کردن آن شرایط بپردازد. به همین علت ممکن است از هر یک از انواع گزینش های بالا استفاده نماید.

در عین حال که این دو دسته از دستورات گزینشی با هم مشابه هستند در برخی از موارد هم تفاوت دارند که بیشتر در نوع و روش کاربرد آنها و مکانهایی که می توان از آنها استفاده نمود مربوط می گردد.

برای توضیح بیشتر و آشنایی با هر یک از گزینش های بالا می توانید به لینک های زیر مراجعه نمایید.

الف) گزینش if

ب) گزینش case
 

پنج شنبه 13 مهر 1391برچسب:, :: 14:14 :: نويسنده : abbaskazemi naini.k


مارکو کانتو یکی از بزرگترین توسعه دهندگان غیر رسمی (یعنی کارمند شرکت امبارکادرو نیست)دلفی و کسی که در زبان برنامه نویسی دلفی حرفهای زیادی گفته و حرفهای زیادتری برای گفتن داره. هر جا که وارد می شه تمام کارها رو آسون می کنه و حرفی برای گفتن باقی نمی گذاره.


در بسیاری از جشنواره ها و سخنرانی های مربوط به دلفی که سطح اون بالا باشه به عنوان سخنران دعوت می شه.

این ایتالیایی دانشمند عمر خودش رو صرف برنامه نویسی دلفی کرده و تمام زیر و بم اون رو می دونه.

حالا ما هم کتابی از این دانشمند دلفی کار قرار دادیم که کار شما رو آسون می کنه.

برای لینک دانلود به ادامه مطلب بروید...
 

ادامه مطلب مورد نظر رمز دارد.
لطفا رمز عبور مربوط به مطلب را وارد کرده ، دکمه تایید را کلیک کنید.
A.K.N.LOVE&FIREND


ادامه مطلب ...

 حلقه ی repeat یا به عبارتی repeat until همانند حلقه ی while برای تکرارهای نامعلوم استفاده می گردد. نحوه ی نوشتن این حلقه به شکل زیر می باشد:

repeat

statements

until condition;

که در آن شما به جای کلمه ی statements می توانید دستورات خود را وارد نمایید. و به جای کلمه ی condition شرط خاتمه ی حلقه می تواند قرار بگیرد و تا زمانیکه شرط حلقه نادرست باشد دستورات داخل حلقه تکرار می شود. یعنی با این حساب حلقه ی repeat به زبان فارسی به شکل زیر می باشد:

به ادامه مطلب مراجعه نمایید...
 



ادامه مطلب ...

با همه ی شباهتهایی که این دو حلقه به هم دارند یک تفاوت اساسی این دو حلقه را از همدیگر متمایز می سازد. و آن هم نکته ی بسیار ظریف تعداد تکرار آنها می باشد بدین معنی که:

در حلقه ی while ممکن است دستورات داخل حلقه هیچ گاه اجرا نشود یعنی اگر شرط حلقه درست نباشد دستورات داخل حلقه هیچ گاه اجرا نمی گردد.

اما در حلقه ی repeat دستورات داخل حلقه حداقل یک بار اجرا می گردد. یعنی اگر حتی شرط حلقه درست نباشد دستورات داخل حلقه یک بار اجرا می گردد.

تفاوت بالا به دلیل این است که در حلقه ی while شرط حلقه در ابتدای حلقه بررسی می گردد و تنها زمانی وارد حلقه می شویم که شرط درست باشد

اما در حلقه ی repeat به دلیل اینکه شرط حلقه در انتهای حلقه بررسی می گردد پس یک بار دستورات اجرا می گردد و در آنصورت اگر شرط حلقه نادرست باشد برای بار دوم دستورات تکرار نخواهند شد. (یعنی به هر صورت دستورات داخل حلقه حداقل یک بار اجرا می گردد خواه شرط حلقه درست باشد خواه نادرست)
 

ادامه مطلب مورد نظر رمز دارد.
لطفا رمز عبور مربوط به مطلب را وارد کرده ، دکمه تایید را کلیک کنید.
A.K.N.LOVE&FIREND KOD
پنج شنبه 13 مهر 1391برچسب:, :: 13:58 :: نويسنده : abbaskazemi naini.k

با همه ی شباهتهایی که این دو حلقه به هم دارند یک تفاوت اساسی این دو حلقه را از همدیگر متمایز می سازد، و آن هم نکته ی بسیار ظریف تعداد تکرار آنها، می باشد بدین معنی که:

در حلقه ی while ممکن است دستورات داخل حلقه هیچ گاه اجرا نشود یعنی اگر شرط حلقه درست نباشد دستورات داخل حلقه هیچ گاه اجرا نمی گردد.

اما در حلقه ی do دستورات داخل حلقه حداقل یک بار اجرا می گردد. یعنی اگر حتی شرط حلقه درست هم نباشد دستورات داخل حلقه یک بار اجرا می گردد.

تفاوت بالا به دلیل این است که در حلقه ی while شرط حلقه در ابتدای حلقه بررسی می گردد و تنها زمانی وارد حلقه می شویم که شرط درست باشد

اما در حلقه ی do شرط حلقه در انتهای حلقه بررسی می گردد پس با این حساب دستورات داخل حلقه یک بار اجرا می گردد و در آنصورت اگر شرط حلقه نادرست باشد برای بار دوم دستورات تکرار نخواهند شد. (یعنی به هر صورت دستورات داخل حلقه حداقل یک بار اجرا می گردد خواه شرط حلقه درست باشد خواه نادرست)
 

پنج شنبه 13 مهر 1391برچسب:, :: 13:55 :: نويسنده : abbaskazemi naini.k

حلقه ی do یا به عبارتی do while همانند حلقه ی while برای تکرارهای نامعلوم استفاده می گردد. نحوه ی نوشتن این حلقه به شکل زیر می باشد:

do{

statements

}while(condition);

که در آن شما به جای کلمه ی statements می توانید دستورات خود را وارد نمایید. و به جای کلمه ی condition شرط خاتمه ی حلقه می تواند قرار بگیرد و تا زمانیکه شرط حلقه نادرست باشد دستورات داخل حلقه تکرار می شود.

به ادامه مطلب مراجعه نمایید...

 



ادامه مطلب ...
پنج شنبه 13 مهر 1391برچسب:, :: 13:50 :: نويسنده : abbaskazemi naini.k

 در برنامه نویسی یکی از پرکاربردترین عملگرها، عملگر انتساب است که از آن برای انتساب مقادیر به متغیرها استفاده می گردد. (یعنی از آن برای مقداددهی به متغیرها استفاده می گردد.) هر نوع مقداردهی در زبان برنامه نویسی به وسیله ی این عملگر انجام می گردد. عملگر انتساب در زبانهای C#, C++, Cتوسط علامت تساوی شناسایی می گردد.

=

از این عملگر همچنین برای انتساب مقادیر حاصل از یک عبارت محاسباتی، منطقی و ... به یک متغیر استفاده نمود.مثال:

a = 10;

b = a * 3;

c = b * a / 2;

توضیح: در خط اول مقدار عددی ۱۰ به متغیر a انتساب داده می شود. یعنی در داخل متغیر a مقدار عددی ۱۰ قرار می گیرد.

در خط دوم مقدار حاصل عبارت a * 3 که همان عدد ۳۰ می باشد در داخل متغیر b قرار می گیرد.

در خط سوم هم حاصل عبارت پیچیده تر b * a / 2 که مقدار ۱۵۰ می باشد در داخل متغیر c قرار می گیرد.
 

پنج شنبه 13 مهر 1391برچسب:, :: 13:48 :: نويسنده : abbaskazemi naini.k

 عملگر انتساب در دلفی و پاسکال(Pascal, Delphi)

در برنامه نویسی یکی از پرکاربردترین عملگرها، عملگر انتساب است که از آن برای انتساب مقادیر به متغیرها استفاده می گردد. (یعنی از آن برای مقداددهی به متغیرها استفاده می گردد.) هر نوع مقداردهی در زبان برنامه نویسی به وسیله ی این عملگر انجام می گردد. عملگر انتساب در پاسکال و دلفی توسط علامت دونقطه که پس از آن علامت تساوی قرار دارد شناسایی می گردد.

:=

از این عملگر همچنین برای انتساب مقادیر حاصل از یک عبارت محاسباتی، منطقی و ... به یک متغیر استفاده نمود.مثال:

a := 10;

b := a * 3;

c := b * a / 2;

توضیح: در خط اول مقدار عددی ۱۰ به متغیر a انتساب داده می شود. یعنی در داخل متغیر a مقدار عددی ۱۰ قرار می گیرد.

در خط دوم مقدار حاصل عبارت a * 3 که همان عدد ۳۰ می باشد در داخل متغیر b قرار می گیرد.

در خط سوم هم حاصل عبارت پیچیده تر b * a / 2 که مقدار ۱۵۰ می باشد در داخل متغیر c قرار می گیرد.

نکته: این عملگر دوعلامتی می باشد به این معنی که از دو علامت(سمبل) برای نمایش آن استفاده شده است یکی علامت دونقطه(:) و دیگری علامت مساوی (=) که حتما باید بدون فاصله استفاده گردند تا به عنوان علامت انتساب در نظر گرفته شوند در غیر اینصورت یک خطای زمان کامپایل رخ خواهد داد. مثال:

a : = 100;

 

توضیح: در خط بالا یک خطای زمان کامپایل رخ می دهد که در آن فاصله ی بین دونقطه و علامت تساوی باعث این خطا خواهد بود.

پنج شنبه 13 مهر 1391برچسب:, :: 13:45 :: نويسنده : abbaskazemi naini.k

از این حلقه برای نوشتن حلقه های نامعین استفاده می گردد. گرچه که کاربردهای معین نیز دارد ولی به طور معمور تا زمانیکه حلقه ی for برای کاربردهای معین وجود دارد و می توان از آن استفاده نمود از حلقه ی while برای کاربردهای معین استفاده نمی شود.

نحوه ی نوشتن حلقه ی while به شکل زیر است:



به ادامه مطلب مراجعه کنید...
 



ادامه مطلب ...
پنج شنبه 13 مهر 1391برچسب:, :: 13:43 :: نويسنده : abbaskazemi naini.k

 در زبان پاسکال و دلفی (یا به طور کل در همه ی زبانهای برنامه نویسی) معروف ترین حلقه همین حلقه ی for می باشد. از این حلقه برای نوشتن تکرارهای معین استفاده می گردد، به علت اینکه در این حلقه تعداد تکرار مشخص می باشد.(از این پس به جای حلقه ی for می نویسیم for) که در آن سه بخش متغیر و دو بخش ثابت وجود دارد:

به طور کل نحوه ی نوشتن حلقه ی for به شکل زیر است:

for variable := start to finish do

// code

توضیح:



برای دیدن توضیحات به ادامه مطلب بروید...
 



ادامه مطلب ...
پنج شنبه 13 مهر 1391برچسب:, :: 13:42 :: نويسنده : abbaskazemi naini.k

در زبانهای C#, C++, C سه نوع حلقه ی متفاوت وجود دارد، حلقه ها کاربردهای بسیاری در برنامه نویسی دارند و به طور قطع می توان گفت، در بیش از 70 درصد برنامه هایی که نوشته می شود حداقل یک حلقه وجود دارد.

دلیل اصلی استفاده از رایانه (کامپیوتر) برای 2 کاربرد است: ( این کارها برای انسان خسته کننده محسوب می گردد.)



بقیه ی مطلب را در ادامه مطلب بخوانید...
 



ادامه مطلب ...
پنج شنبه 13 مهر 1391برچسب:, :: 13:39 :: نويسنده : abbaskazemi naini.k

 در زبانهای پاسکال و دلفی سه نوع حلقه ی متفاوت وجود دارد، حلقه ها کاربردهای بسیاری در برنامه نویسی دارند و به طور قطع می توان گفت، در بیش از 70 درصد برنامه هایی که نوشته می شود حداقل یک حلقه وجود دارد.

دلیل اصلی استفاده از رایانه (کامپیوتر) برای 2 کاربرد است: ( این کارها برای انسان خسته کننده محسوب می گردد.)

برای خواندن مطلب به ادامه مطلب بروید...
 



ادامه مطلب ...
پنج شنبه 13 مهر 1391برچسب:, :: 13:17 :: نويسنده : abbaskazemi naini.k

این عملگرها در ترکیب کردن شرط ها و ایجاد شرط های مرکب نقش دارند و همانند عملگرهای معادل خود در منطق ریاضی عمل می نمایند.



عملگر && (عطف)

زمانی که از این عملگر استفاده می کنیم حتما باید هر دو (یا چند) شرط موجود درست باشد تا در مجموع جواب شرط ترکیبی، درست باشد.



عملگر || (فصل)

زمانیکه از این عملگر استفاده نماییم در صورتیکه یکی از شرط ها به جواب درست بیانجامد جواب شرط ترکیبی نیز درست خواهد بود.



عملگر ! (نقیض)

از این عملگر برای معکوس کردن جواب شرط ها استفاده می شود.



کاربرد:

از عملگرهای بالا همانطور که گفته شد برای ترکیب کردن شرط ها استفاده می گردد. که در بسیاری از موارد (مخصوصا کاربردهای ریاضی و امنیتی) فقط با استفاده از این عملگرها می توانیم کدهای بهینه تولید کنیم. مثال:

اگر بخواهیم معادل ریاضی 10 < a < 20 (معنای آن این است که متغیر a هم بزرگتر از 10 است و هم کوچکتر از 20 ) را پیاده سازی نماییم با استفاده از عملگر عطف و به شکل زیر آنرا می نویسیم.

(a > 10) && (a < 20)



توضیح: در شرط ترکیبی بالا می بینید برای ترکیب کردن دو شرطی که هر کدام در یک پرانتز نوشته شده اند از عملگر عطف (&&) استفاده نموده ایم.



جدول درستی:

برای هر کدام از عملگرهای بالا در منطق ریاضی یک جدول درستی در نظر می گیرند. جدول درستی را معمولا برای دو عبارت در نظر می گیرند و بقیه ی عبارت ها را از روی آن استدلال می کنند. که ما هم برای درک بیشتر آنرا در ادامه ذکر می کنیم.



جدول درستی عملگر عطف(&&)

B A A && B
T T T
T F F
F T F
F F F

جدول درستی عملگر فصل(||)

T B A || B
T T T
T F T
F T T
F F F

جدول درستی عملگرنقیض (!)

A A
F T
T F

به دلیل اینکه عملگر فوق بر روی یک عبارت عمل می نماید و به اصطلاح تک عملوندی می باشد جدول درستی آن نیز حاوی دو ردیف می باشد.
*در جداول بالا هر کدام از حروف T به معنای درست (True) و هر کدام از حروف F به معنای نادرست (False) استفاده گردیده است.

**هر کدام از حروف A و B نیز به جای یک عبارت استفاده گردیده است.



توضیح: همانطور که می دانید، هر عبارت یا درست است و یا نادرست پس برای هر عبارت دو انتخاب وجود دارد برای همین هم در ترکیب دو عبارت چهار حالت مختلف به وجود می آید. به همین خاطر دو جدول اول چهار ردیف و جدول آخر دو ردیف دارند.



نکته: در عبارت های عطفی (&&) تنها زمانیکه هر دو عبارت درست باشند جواب درست خواهد بود و در غیر اینصورت جواب نادرست می باشد.

در عبارت های فصلی (||) عکس عبارت های عطفی تنها زمانیکه هر دو عبارت نادرست باشند جواب نادرست است و در غیر اینصورت جواب درست می باشد.



بیشتر بدانیم: در کامپایلرهای نوین بهینه سازی (Optimization) کد انجام می گیرد که در زمان شرط های ترکیبی بسیار اتفاق می افتد که برنامه نویس بدون در نظر گرفتن این نکته کدهایی می نویسد غافل از اینکه در برخی موارد کدهای رفتار درستی از لحاظ برنامه نویس نشان نمی دهند.

بهینه سازی در زمان شرط های ترکیبی به شکل زیر انجام می پذیرد.

اگر n شرط را با هم به صورت عطفی (با عملگر&&) تر کیب کرده باشیم آنگاه زمانیکه شرط اول نادرست باشد بقیه ی شرط ها حتی بررسی هم نمی شوند. ( این به خاطر جدول درستی است که هر گاه هر کدام از عبارت ها نادرست باشد جواب نهایی صرف نظر از مقدار عبارت بعدی حتما نادرست خواهد بود.) و اگر اولین عبارت نادرست نباشد عبارت بعدی بررسی می گردد تا زمانیکه به اولین عبارت نادرست برسد.

اگر n شرط را با هم به صورت فصلی (با عملگر ||) ترکیب کرده باشیم آنگاه زمانیکه شرط اول درست باشد بقیه ی شرط ها حتی بررسی هم نمی شوند. ( این به خاطر جدول درستی است که هر گاه هر کدام از عبارت ها درست باشد جواب نهایی صرف نظر از مقدار عبارت بعدی حتما درست خواهد بود.) و اگر اولین عبارت درست نباشد عبارت بعدی بررسی می گردد تا زمانیکه به اولین عبارت درست برسد.
 

پنج شنبه 13 مهر 1391برچسب:, :: 12:55 :: نويسنده : abbaskazemi naini.k

این عملگرها در ترکیب کردن شرط ها و ایجاد شرط های مرکب نقش دارند و همانند عملگرهای معادل خود در منطق ریاضی عمل می نمایند.



عملگر and (عطف)

زمانی که از این عملگر استفاده می کنیم حتما باید هر دو (یا چند) شرط موجود درست باشد تا در مجموع جواب شرط ترکیبی، درست باشد.



عملگر or (فصل)

زمانیکه از این عملگر استفاده نماییم در صورتیکه یکی از شرط ها به جواب درست بیانجامد جواب شرط ترکیبی نیز درست خواهد بود.



عملگر not (نقیض)

از این عملگر برای معکوس کردن جواب شرط ها استفاده می شود.



کاربرد:

از عملگرهای بالا همانطور که گفته شد برای ترکیب کردن شرط ها استفاده می گردد. که در بسیاری از موارد (مخصوصا کاربردهای ریاضی و امنیتی) فقط با استفاده از این عملگرها می توانیم کدهای بهینه تولید کنیم. مثال:

اگر بخواهیم معادل ریاضی 10 < a < 20 (معنای آن این است که متغیر a هم بزرگتر از 10 است و هم کوچکتر از 20 ) را پیاده سازی نماییم با استفاده از عملگر عطف و به شکل زیر آنرا می نویسیم.

(a > 10) and (a < 20)



توضیح: در شرط ترکیبی بالا می بینید برای ترکیب کردن دو شرطی که هر کدام در یک پرانتز نوشته شده اند از عملگر عطف (and) استفاده نموده ایم.



جدول درستی:

برای هر کدام از عملگرهای بالا در منطق ریاضی یک جدول درستی در نظر می گیرند. جدول درستی را معمولا برای دو عبارت در نظر می گیرند و بقیه ی عبارت ها را از روی آن استدلال می کنند. که ما هم برای درک بیشتر آنرا در ادامه ذکر می کنیم.



جدول درستی عملگر عطف(and)
                                                                                                                                   

A and B B A
 T    T T
F F T
F T F
F F F

 جدول درستی عملگر فصل(or)

A or B B A
T T T
T F T
T T F
F F F

جدول درستی عملگرنقیض (not)

not A A
F T
T F

به دلیل اینکه عملگر فوق بر روی یک عبارت عمل می نماید و به اصطلاح تک عملوندی می باشد جدول درستی آن نیز حاوی دو ردیف می باشد.
*در جداول بالا هر کدام از حروف T به معنای درست (True) و هر کدام از حروف F به معنای نادرست (False) استفاده گردیده است.

**هر کدام از حروف A و B نیز به جای یک عبارت استفاده گردیده است.



توضیح: همانطور که می دانید، هر عبارت یا درست است و یا نادرست پس برای هر عبارت دو انتخاب وجود دارد برای همین هم در ترکیب دو عبارت چهار حالت مختلف به وجود می آید. به همین خاطر دو جدول اول چهار ردیف و جدول آخر دو ردیف دارند.



نکته: در عبارت های عطفی (and) تنها زمانیکه هر دو عبارت درست باشند جواب درست خواهد بود و در غیر اینصورت جواب نادرست می باشد.

در عبارت های فصلی (or) عکس عبارت های عطفی تنها زمانیکه هر دو عبارت نادرست باشند جواب نادرست است و در غیر اینصورت جواب درست می باشد.



بیشتر بدانیم: در کامپایلرهای نوین بهینه سازی (Optimization) کد انجام می گیرد که در زمان شرط های ترکیبی بسیار اتفاق می افتد که برنامه نویس بدون در نظر گرفتن این نکته کدهایی می نویسد غافل از اینکه در برخی موارد کدهای رفتار درستی از لحاظ برنامه نویس نشان نمی دهند.

بهینه سازی در زمان شرط های ترکیبی به شکل زیر انجام می پذیرد.

اگر n شرط را با هم به صورت عطفی (با عملگر and) تر کیب کرده باشیم آنگاه زمانیکه شرط اول نادرست باشد بقیه ی شرط ها حتی بررسی هم نمی شوند. ( این به خاطر جدول درستی است که هر گاه هر کدام از عبارت ها نادرست باشد جواب نهایی صرف نظر از مقدار عبارت بعدی حتما نادرست خواهد بود.) و اگر اولین عبارت نادرست نباشد عبارت بعدی بررسی می گردد تا زمانیکه به اولین عبارت نادرست برسد.

اگر n شرط را با هم به صورت فصلی (با عملگر or) ترکیب کرده باشیم آنگاه زمانیکه شرط اول درست باشد بقیه ی شرط ها حتی بررسی هم نمی شوند. ( این به خاطر جدول درستی است که هر گاه هر کدام از عبارت ها درست باشد جواب نهایی صرف نظر از مقدار عبارت بعدی حتما درست خواهد بود.) و اگر اولین عبارت درست نباشد عبارت بعدی بررسی می گردد تا زمانیکه به اولین عبارت درست برسد.
 

 

پنج شنبه 13 مهر 1391برچسب:, :: 12:51 :: نويسنده : abbaskazemi naini.k

داده ها در این زبان 4 نوع هستند که به ترتیب الفباchar, double, float, int می باشند.

برای گسترش انواع در زبان C از چهار کلمه ی کلیدی دیگر کمک گرفته شده است که در ادامه آنها را بررسی می نماییم.



کلمه ی کلیدی signed :

همانطور که از نام آن مشخص می گردد از آن برای علامت دار کردن یک نوع استفاده می گردد، یعنی متغیری که این کلمه بر روی آن اعمال می شود قابلیت پیدا می کند که هم اعداد مثبت و هم اعداد منفی را در خود ذخیره نماید (گر چه ظرفیت متغیر تغییری نمی کند اما نیمی از ظرفیت برای اعداد منفی و نیمی دیگر برای اعداد مثبت در نظر گرفته خواهد شد یعنی اگر نوع بدون علامت int توانایی ذخیره ی عدد 65535 را داشته باشد این عدد در نوع علامت دار int به 32767 کاهش پیدا خواهد کرد. این به دلیل این است که در متغیرهای بدون علامت قابلیت ذخیره ی اعداد منفی وجود ندارد ولی در متغیرهای علامت دار نیمی از ظرفیت برای ذخیره ی اعداد منفی استفاده می گردد.) که این کلمه را می توان به تنهایی و یا قبل از انواع عددی صحیح (char, int) به کار برد.مثال:

signed i;

signed char c;

signed int a;



توضیح: در خط اول کلمه ی کلیدی signed به تنهایی به کاربرده شده است و تفاوتی میان خط اول و تعریف signed int i; وجود ندارد، در خط دوم قبل از نوع char و در خط سوم قبل از نوع int استفاده شده است.

نکته1: وقتی کلمه ی کلیدی signed بدون ذکر نوع در جلوی آن (همانند خط اول مثال) نوشته شود منظور اعلان signed int است.

نکته 2: انواع int, char به صورت پیش فرض علامت دار هستند، پس از اینجا نتیجه می گیریم که به کاربردن کلمه ی کلیدی signed کاملا اختیاری است و برای خواناتر شدن برنامه به کار می رود.



کلمه ی کلیدی unsigned :

از این کلمه ی کلیدی برای بدون علامت کردن متغیرها استفاده می شود و باید آنرا قبل از اسم نوع (فقط نوع های int, char) به کاربرد. برعکس کلمه ی کلیدی signed که نیازی به ذکر آن قبل از اسم نوع نبود کلمه ی کلیدی unsigned حتما باید ذکر گردد تا متغیر خود را بدون علامت نماید.

unsigned i;

unsigned char c;

unsigned int a;

توضیح: در خط اول متغیر بدون علامت از نوع int ایجاد می گردد و فرقی بین خط اول و unsigned int i; وجود ندارد. بقیه هم که گویا هستند.

نکته: متغیری که بدون علامت باشد قابلیت ذخیره کردن اعداد منفی را ندارد.



کلمه ی کلیدی short :

این کلمه ی کلیدی ظرفیت (size) متغیر خود را به نصف کاهش می دهد.(البته در برخی موارد ممکن است در ظرفیت متغیر خود تغییری ایجاد ننماید که این بستگی به نوع کامپایلر و ماشینی که برنامه بر روی آن کامپایل می شود دارد واز سیستمی به سیستم دیگر فرق دارد.)تنها بر روی اسم نوع int کاربرد دارد.از این کلمه هم، قبل از اسم نوع استفاده می گردد. مانند دو کلمه ی کلیدی قبل می توان آنرا به تنهایی و یا با انواع عددی صحیح به کاربرد.مثال:

short a;

short int b;

توضیح: خط اول متغیر a را از نوع short int تعریف می نماید.



کلمه ی کلیدی long :

این کلمه ی کلیدی ظرفیت متغیر خود را بیشتر می نماید. هم به تنهایی و هم قبل از انواع int, double می توان از آن استفاده نمود.

اگر به تنهایی استفاده گردد با تعریف long int یکی خواهد بود.

long l;

long int li;

long double ld;

توضیح: خط اول متغیر l را از نوع long int تعریف می نماید. خط دوم هم همینطور.

خط سوم متغیر ld را از نوع long double تعریف می نماید که از متغیر double بزرگتر می باشد.

نکته ی مهم: ترکیباتی که از انتخاب یکی از دو کلمه ی اول (short, long) و یکی از دو کلمه ی دوم (signed , unsigned) به وجود می آید دلخواه است یعنی دو تعریف زیر با هم یکی هستند:

short signed int i

signed short int i;



با ارائه ی توضیحات بالا حال به بررسی اندازه ی حافظه ی اشغالی و محدوده ی قابل ذخیره در هر یک از انواع می پردازیم.(لازم به توضیح است که متغیرها در سخت افزارهای 16بیتی، 32بیتی و 64 بیتی باهم متفاوت هستند و ما برای اینکه درست تر نوشته باشیم متغیرها را در سخت افزار 32 بیتی می نویسیم.)

Type(نوع) Length(طول نوع) Range(محدوده)
 

 


 

unsigned char 8 bits(1 Byte) 0 to 255

signed char 8 bits(1 Byte) -128 to 127

char 8 bits(1 Byte) -128 to 127

short int 16 bits(2 Bytes) -32768 to 32767

long int 32 bits(4 Bytes) -2147843648 to 2147843647

int 32 bits(4 Bytes) -32768 to 32767

unsigned int 32 bits(4 Bytes) 0 to 4294967295

signed int 32 bits(4 Bytes) -32768 to 32767

unsigned short int 16 bits(2 Bytes) 0 to 65535

unsigned long int 32 bits(4 Bytes) 0 to 4294967295

signed short int 16 bits(2 Bytes) -32768 to 32767

signed long int 32 bits(4 Bytes) -2147843648 to 2147843647

long 32 bits(4 Bytes) -2147843648 to 2147843647

unsigned long 32 bits(4 Bytes) 0 to 4294967295

signed long 32 bits(4 Bytes) -2147843648 to 2147843647

float 32 bits(4 Bytes) 3.4*10^-38 to 3.4*10^38

double 64 bits(8 Bytes) 1.7*10^-308 to 1.7*10^308

long double 80 bits(10 Bytes) 3.4*10^-4932 to 3.4*10^4932
 

پنج شنبه 13 مهر 1391برچسب:, :: 12:49 :: نويسنده : abbaskazemi naini.k

 در زبانهای بالا قواعد نحوی (syntax) برنامه نویسی شباهت بسیاری با هم دارند تا جایی که می توان آن ها را در یک پست نوشت.

1- هر دستور باید به سمیکالن(;) ختم شود.

2- زبانهای فوق به صورت قالب آزاد (Free Format ) طراحی شده اند که به برنامه نویس این قدرت را می دهد که هر قالبی که با آن راحت تر بود را برای کدهای خود انتخاب نماید. یعنی می شود یک دستور را در چند خط نوشت و یا چند دستور را در یک خط نوشت (برعکس VB که حتما باید در هر خط یک دستور نوشته شود.) برای مثال در زبان پاسکال می توان به صورت زیر کدنویسی نمود.

a := b * 3;write(‘ahmad’);readln;

و یا آنرا به شکل زیر بنویسیم:

a

:= b * 3;

write

(

‘ahmad’

)

;

readln

;

هردو کد بالا یک نوع خروجی دارد و از لحاظ نحوی هم درست است.

نکته: باید در نظر داشت که در این خاصیت حتما باید حروف مرتبط باهم ذکر گردند ولی می توان کلمات متفاوت را در هر مکانی که دلخواه باشد(البته پشت سر کلمه ی مرتبط قبلی) بنویسیم و این تاثیری در نتیجه ی برنامه نخواهد داشت. اما برنامه ی زیر خطا دارد:

a : = b * 3;

wr ite(‘ahmad);

توضیح: در خط اول بین دونقطه(:) و علامت مساوی فاصله وجود دارد که در اینصورت علامت دونقطه مساوی که در واقع یک علامت برای نمایش عملگر انتساب است را تفکیک می کند و باعث می شود که عملگر ذات خود را از دست دهد.

و در خط دوم کلمه ی write زمانی کار خود را به درستی انجام می دهد که به صورت واحد نوشته شود در غیر اینصورت دو واژه ی جدا تلقی خواهد شد.

معادل برنامه های بالا در زبان C به شکل زیر خواهد بود.

a = b * 3; printf(“ahmad”);getch();

و بنابراین می توان آن را به شکل زیر نیز بنویسیم:

a

= b * 3;

printf

(

“ahmad”

)

;

getch()

;

3- هر دستور اجرایی (دستوری که تعریف کردن کلاس، تابع، متغیر ، ثوابت و ... نباشد) باید در یک تابع یا کلاس نوشته شود و نوشتن دستور اجرایی خارج از توابع خطا محسوب می گردد.
 

پنج شنبه 13 مهر 1391برچسب:, :: 12:45 :: نويسنده : abbaskazemi naini.k

همانطور که از نام آنها پیداست از این عملگرها برای مقایسه استفاده می گردد، و به طور کل در شرط ها و حلقه ها جهت کنترل کردن مورد یا مواردی (که در آنها از عمل مقایسه کمک گرفته می شود) استفاده می گردد.

در بسیاری از موارد اتفاق می افتد که برای انجام شدن دستور یا دستوراتی نیاز داریم که شرایط خاصی وجود داشته باشد، مثلا مقایسه ای صورت پذیرد و یا چیزی با یک شرایط خاص مقایسه شود در اینصورت استفاده از این عملگرها معنی پیدا می کند:



عملگر <

از این عملگر برای مقایسه ی کوچکتری به شکل « عملوند سمت راست < عملوند سمت چپ » یا « عبارت سمت راست < عبارت سمت چپ » و یا a > b استفاده می شود و در آن اگر عملوند سمت راست کوچکتر از عملوند سمت چپ باشد جواب عبارت، درست (True) و در غیر اینصورت جواب، نادرست (False) می باشد.



عملگر =<

این عملگر نیز همانند عملگر بالایی می باشد با این تفاوت که اگر عملوند یا عبارت سمت راست مساوی با عملوند یا عبارت سمت چپ باشد نیز جواب، درست خواهد بود.



عملگر >

این عملگر نیز در مقایسه ی عملوند ها یا عبارت ها، و برای مقایسه ی بزرگتری استفاده می گردد اگر عملوند یا عبارت سمت راست بزرگتر از عملوند یا عبارت سمت چپ باشد جواب، درست در غیر اینصورت جواب، نادرست می باشد.



عملگر =>

همانند عملگر بالایی می باشد با این تفاوت که اگر هر دو عملوند یا عبارت با هم مساوی هم باشند جواب، درست می باشد و در صورتی جواب، نادرست است که عملوند یا عبارت سمت راست کوچکتر از عملوند یا عبارت سمت چپ باشد.



عملگر ==

این عملگر برای مقایسه ی تساوی بین دو عملوند و یا عبارت استفاده می گردد، اگر هر دو عملوند یا عبارت با هم مساوی باشند آنگاه جواب، درست؛ و در غیر اینصورت جواب، نادرست می باشد.



نکته: در استفاده از این عملگر باید کمال دقت را نمود، به دلیل اینکه بسیاری از برنامه نویسان مبتدی زبان های بالا به جای استفاده از == (دو علامت مساوی همزمان) که برای مقایسه ی تساوی دو عبارت به کار می رود از علامت = (یک علامت مساوی) استفاده می نمایند که در این زبانها برای انتساب مقادیر کاربرد دارد.(بعدا در همین سایت به عملگر انتساب خواهیم پرداخت)



عملگر =!

این عملگر درست عکس عملگر قبل (تساوی) عمل می نماید یعنی اگر عملوند یا عبارت ها با هم متفاوت باشند جواب، درست؛ در غیر اینصورت جواب، نادرست می باشد.



تذکر: لازم به ذکر است که عملگرهای بالا فقط در مقایسه کردن عبارات و متغیرهای عددی و یا نویسه ای (کاراکتری) قابل استفاده هستند و نمی توان از آنها برای مقایسه کردن رشته ها استفاده نمود.



مثالهایی در مورد عملگرهای بالایی:

A = 13, B = 4, C = 23, D = 17, E = 4

نکته: در نام های بالا از حروف بزرگ استفاده شده است که بیانگر این است که می تواند به جای آنها یک عبارت باشد که مقادیر فوق را تولید کرده است.

فرض: اگر در مثالهای زیر هر کدام از متغیرها مقادیر مذکور را داشته باشند؛ آنگاه جواب های به دست آمده با یک علامت ← نمایش داده خواهد شد:

A < B → False

A < C → True

A < A → False

A <= B → False

A <= C → True

A <= A → True

D > E → False

D > C → False

C > C → False

C >= E → True

C >= D → True

D >= D → True

A == B → False

D == E → False

E == B → True

E == E → True

A != C → True

B != E → False

C != D → True

B != B → False
 

پنج شنبه 13 مهر 1391برچسب:, :: 12:35 :: نويسنده : abbaskazemi naini.k

بالاخره تبلیغات رسمی شرکت Embarcadero برای عرضه نسخه XE2 از محصول RAD Studio شروع شد. هر چند زمان عرضه رسمی این محصول هنوز اعلام نشده، ولی به نظر میرسه که این نسخه اواخر ماه آگوست یا اواسط سپتامبر به طور رسمی عرضه بشه. در حال حاضر نسخه Beta 8 محصول که به گروه معدودی از Beta Tester ها تحویل داده شده بود، از برخی سایت های زیر زمینی قابل دانلود هست.



معرفی اجمالی



RAD Studio XE2 شامل نرم افزارهای زیر هست:

Delphi XE2

C++ Builder XE2

Delphi Prism XE2

RadPHP XE2

و در چهار نسخه Starter, Professional, Enterprise, Architect عرضه میشه.

از بین چهار نرم افزار فوق، Delphi و C++ Builder برای تولید نرم افزارهای Native Code به کار میرند. Delphi Prism برای تولید نرم افزار مبتنی بر دات نت فریم ورک با زبان دلفی استفاده میشه. RadPHP هم یک محیط RAD برای تولید نرم افزارهای وب با استفاده از زبان PHP هست.



قابلیت های جدید RAD Studio XE2


Cross-Platform

اصلی ترین قابلیت جدید در این نسخه امکان cross-platform compiling هست. در) XE2 دلفی و ( C++ شما می تونید برای ویندوز، Mac OS و iOS کدهای Native تان را کامپایل کنید. همچنین در ویندوز امکان کامپایل به صورت 32 بیتی یا 64 بیتی فراهم شده. RadPHP هم این قابلیت را پیدا کرده که برنامه Native اندروید تولید کنه. در آینده امکان کامپایل برای لینوکس و اندروید هم به این مجموعه اضافه خواهد شد.

برای) iOS سیستم عامل دستگاه های iPhone و (iPad؛ روش کار مشابه سایر ابزارهای غیر اپلی مثل Mono Touch هست؛ به این صورت که شما می تونید برنامه خودتان را در دلفی بنویسید، رابط کاربر گرافیکی اش را با FireMonkey طراحی کنید، و برنامه را در ویندوز هم اجرا و دیباگ کنید؛ ولی برای اجرا و دیباگ بر روی دستگاه، یا شبیه ساز آن؛ باید اولا سیستم عامل Mac OS داشته باشید؛ ثانیا، دلفی یک پروژه XCode برای شما ایجاد می کند که باید آن را در داخل Mac OS با XCode کامپایل کنید، و فایل نهایی را به شبیه ساز یا دستگاه مقصد منتقل کنید. این محدودیت از دو جهت هست، اولا اینکه شرکت اپل قانونا اجازه کامپایل مستقیم (بدون استفاده از ابزارهای این شرکت) را به تولید کنندگان نرم افزار نمیدهند؛ و ثانیا اینکه اگر هم بر فرض اپل همچین اجازه ایی میداد، دلفی فعلا امکان تولید کد برای CPU های مبتنی بر ARM را ندارد، و این قابلیت در آینده به آن اضافه خواهد شد.

محیط توسعه (IDE) همچنان مبتنی بر ویندوز باقی خواهد ماند، اما می تونید برنامه خودتان را از طریق Remote Debugger دلفی که اسمش به Platform Assistant تغییر کرده، در داخل یک ماشین مجازی یا در یک شبکه محلی مثل یک نرم افزار Local از داخل IDE اجرا و دیباگ کنید.


FireMonkey

در دلفی XE2 یک چارچوب جدید برای تولید رابط گرافیکی کاربر معرفی شده با نام FireMonkey. این چارچوب مستقل از پلتفرم هست، و یک رابط کاربر 2 بعدی یا 3 بعدی Vector-base در اختیار شما قرار میده. FireMonkey از توان پردازشگر گرافیکی سیستم (GPU) برای رندر کردن رابط گرافیکی کاربر استفاده میکنه. در ویندوز، FireMonkey از Direct2D برای رسم دو بعدی، و از Direct 3D برای رسم سه بعدی استفاده میکنه. در Mac OS و) iOS و در آینده در لینوکس) از OpenGL برای رسم استفاده میشه. FireMonkey را میشه به نوعی معادل WPF در دات نت تلقی کرد. البته با این تفاوت که FireMonkey برای تعریف عناصر گرافیکی از یک زبان اختصاصی (XAML) بهره نمیبره، بلکه عناصر با استفاده از کدهای دلفی و یا طراح گرافیکی فرم موجود در IDE ساخته میشند. البته FireMonkey کاملا Native Code هست، و نیازی به کتابخانه اضافی برای اجرا نداره. همچنین در FireMonkey امکان تعریف Style های مختلف و اعمال آنها بر روی کل رابط گرافیکی کاربر را دارید. احتمالا به طور پیش فرض Style هایی برای پشتیبانی از ظاهرا استاندارد رابط گرافیکی ویندوز و Mac OS به همراه FireMonkey عرضه خواهند شد، تا برنامه نویس بتونه به راحتی ظاهری شبیه برنامه های عادی این پلتفرم ها تولید کنه. تصویر زیر نمایی از یک رابط کاربر ساده تولید شده با FireMonkey هست، با دو Style مختلف:

FireMonkey-Styles.png

در واقع FireMonkey مبتنی بر تکنولوژی شرکت معروف کامپوننت سازی KesDev هست. این شرکت قبل از این کامپوننت هایی برای تولید رابط گرافیکی مبتنی بر وکتور به صورت دو یا سه بعدی ارائه می کرد. اما مدتی قبل توسط شرکت Embarcadero خریداری شد و برنامه نویسان آن هم جذب این شرکت شدند. هر چند FireMonkey مبتنی بر تکنولوژی KesDev هست، اما در این مدت شرکت Embarcadero تغییرات متعددی در آن اعمال کرده، تا آن را برای نسخه XE2 آماده کند، و این قابلیت صرفا یک تغییر نام برای محصولات KesDev نیست.

VCL همچنان مبتنی بر ویندوز باقی خواهد ماند و امکان استفاده از VCL در سایر پلتفرم ها وجود نخواهد داشت. البته VCL همچنان حمایت میشه و قابلیت های جدید بهش اضافه میشه؛ کما اینکه در XE2 امکان اعمال Style های مختلف بر روی کنترل های VCL اضافه شده.


Live Bindings

این قابلیت برای برنامه نویسان دات نت آشنا ست. در دلفی، با توجه به اینکه قابلیت تولید نرم افزارهای تجاری مبتنی بر بانک اطلاعاتی از نسخه اول جزو اولویت های اصلی محصول بود، برای کار با داده های بانک اطلاعاتی و نمایش این داده ها، دو دسته از کنترل ها ایجاد شدند، کنترل های Data-aware که امکان اتصال به بانک های اطلاعاتی را داشتند، و کنترل های عادی که همچین قابلیتی را نداشتند. بعدها که قابلیت های جدیدی به دلفی اضافه شد، این ساختار برای حفظ سازگاری با نسخه های قدیمی تر حفظ شد؛ اما در XE2 شما مشابه دات نت امکان اتصال هر کنترلی را به منابع داده مختلف خواهید داشت؛ یعنی اولا نیازی به مجموعه جداگانه ایی از کنترل ها برای نمایش داده های بانک اطلاعاتی نیست، و ثانیا منابع داده شما محدود به بانک اطلاعاتی نیستند، و شما می توانید هر نوع داده ایی را از هر منبعی (مثلا یک لیست جنریک) بخوانید و در این کنترل ها نمایش بدید. حتی امکان تلفیق داده های مختلف و ایجاد داده ترکیبی برای نمایش در یک کنترل هم وجود داره.



قابلیت های جدید برای DataSnap

DataSnap چارچوب تولید نرم افزارهای چند لایه (Multi-tier) در دلفی هست، که قابلیت های متعددی ارائه میکنه. در نسخه XE2 قابلیت های جدیدی به آن اضافه شدند. فعلا دو قابلیت جدید آن معرفی شدند؛ یکی پشتیبانی بیشتر از) Cloud بخصوص ( Amazon E3 و امکان نصب در Cloud، و همچنین قابلیت تولید proxy class سمت کلاینت برای زبان ها و پلتفرم های مختلف به منظور راحتی ارتباط نرم افزارهای کلاینت نوشته شده با سایر زبان ها و تکنولوژی ها با سرورهای مبتنی بر DataSnap. در حال حاضر DataSnap امکان تولید proxy class برای کلاینت های مبتنی بر دات نت، جاوا اسکریپت، iOS، اندروید، و Blackberry را دارد.


FastReport

در نسخه های قبلی Quick Report یا Rave به عنوان ابزار گزارش سازی پیش فرض به همراه IDE نصب می شدند، که بعدها Quick Report کنار گذاشته شد. در نسخه XE2 در کنار Rave، ابزار معروف و پرطرفدار FastReport هم به طور پیش فرض با IDE نصب خواهد شد.


فعلا این تغییرات و امکانات برای XE2 معرفی شدند. تغییرات و امکانات دیگه ایی هم صورت گرفتند که به تدریج در مدت یک ماه توسط شرکت Embarcadero رسما اعلام خواهند شد. این شرکت مراسمی را در نقاط مختلف دنیا (از جمله دبی) در تاریخ های مختلف ترتیب داده، و در هر یک از این مراسم ها، قابلیت های مختلف این محصول به کاربران معرفی خواهند شد، تا زمان شروع کنفرانس Delphi Live در ماه سپتامبر. به نظر میرسه که نسخه XE2 یکی از مهم ترین نسخه های تاریخ حیات دلفی باشه
 

پنج شنبه 13 مهر 1386برچسب:, :: 12:33 :: نويسنده : abbaskazemi naini.k

 در زبان پاسکال و به تبع آن دلفی، عملگرهایی برای اعمال محاسباتی در نظر گرفته شده است که در ادامه آنها را با ذکر مثالهایی بررسی می نماییم:



عملگر + (این عملگر هم بر روی اعداد و هم بر روی رشته ها عمل می نماید.)

این عمگر معادل عملگر جبری خود می باشد و برای جمع نمودن دو مقدار استفاده می گردد. مثال:

a + b

در قطعه کد بالا مجموع دو متغیر a و b محاسبه می گردد.

نکته: به دلیل اینکه این عملگر در دو زبان فوق بر روی رشته ها نیز عمل می نماید باید توجه داشت که اگر دو متغیر مذکور رشته ای باشند مقدار جواب الحاق دو رشته خواهد بود مثال:

اگر در متغیر a مقدار عددی ۱۳ و در متغیر b مقدار عددی ۱۸ وجود داشته باشد مقدار حاصل از a + b عدد ۲۱ خواهد بود ولی،

اگر در متغیر a مقدار رشته ای ali و در متغیر b مقدار رشته ای reza باشد مقدار حاصل از عبارت a + b رشته ی alireza خواهد بود.



عملگر – (این عملگر تنها بر روی اعداد عمل می نماید.)

این عملگر نیز مانند عملگر جبری خود می باشد که برای تفریق نمودن دو مقدار از آن استفاده می گردد.مثال:

a – b

در قطعه کد بالا مقدار متغیر b از مقدار متغیر a کم می شود.

اگر در متغیر a مقدار عددی 22 و در متغیر b مقدار عددی 14 وجود داشته باشد، مقدار حاصل از a – b عدد 8 خواهد بود.



عملگر * (این عملگر تنها بر روی اعداد عمل می نماید.)

این عملگر معادل عملگر جبری × می باشد که برای ضرب نمودن دو مقدار از آن استفاده می گردد. مثال:

a * b

در قطعه کد بالا حاصلضرب دو متغیر a و b محاسبه می گردد.

اگر در متغیر a مقدار عددی ۱۳ و در متغیر b مقدار عددی ۳ باشد حاصل عبارت a * b عدد 33 می شود.



عملگر / (این عملگر تنها بر روی اعداد عمل می نماید.)

این عملگر معادل عملگر جبری ÷ می باشد که برای تقسیم کردن مقادیر استفاده می گردد. مثال:

a / b

در قطعه کد بالا خارج قسمت تقسیم مقدار متغیر a بر مقدار متغیر b بدست می آید.

اگر در متغیر a مقدار عددی 1۰ و در متغیر b مقدار عددی ۴ موجود باشد حاصل عبارت a / b عدد اعشاری 2.5 می شود.



mod عملگر (این عملگر تنها بر روی اعداد صحیح کاربرد دارد.)

عملگر فوق برای بدست آوردن باقیمانده ی تقسیم دو عدد صحیح بر هم کاربرد دارد و نیز در جبر اعداد معادلی ندارد. مثال:

a mod b

در قطعه کد بالا باقیمانده ی تقسیم مقدار متغیر a بر مقدار متغیر b بدست می آید.

اگر در متغیر a مقدار عددی 1۰ و در متغیر b مقدار عددی 7 موجود باشد حاصل عبارت a mod b عدد ۳ خواهد بود.



div عملگر (این عملگر نیز تنها بر روی اعداد صحیح کاربرد دارد.)

عملگر div برای بدست آوردن خارج قسمت صحیح در تقسیم دو عدد صحیح بر هم کاربرد دارد. مثال:

a div b

در قطعه کد بالا اگر در متغیر a مقدار عددی 1۰ و در متغیر b مقدار عددی 7 باشد حاصل عبارت a div b عدد صحیح ۱ خواهد بود.

مثال های بیشتری در رابطه با mod و div:

5 mod 7 = 5 *

-12 mod 5 = -2

-12 mod -5 = -2

12 mod -5 = 2

12 mod 5 = 2





2 div 7 = 0

-2 div 7 = 0

-7 div 3 = -2

-7 div -3 = 2

7 div -3 = -2

7 div 3 = 2

نکته: به طور کلی در تقسیم علامت جواب نهایی از ضرب علامت دو عملوند استخراج می گردد، ولی در باقیمانده علامت عملوند سمت چپ همواره در جواب حاضر می گردد.

*باقیمانده ی عددی کمتر بر عددی بیشتر همواره خود عدد کمتر خواهد بود.
 

صفحه قبل 1 صفحه بعد
موضوعات
پيوندها



نام :
وب :
پیام :
2+2=:
(Refresh)

<-PollName->

<-PollItems->

خبرنامه وب سایت:





آمار وب سایت:  

بازدید امروز : 42
بازدید دیروز : 166
بازدید هفته : 208
بازدید ماه : 355
بازدید کل : 13095
تعداد مطالب : 154
تعداد نظرات : 30
تعداد آنلاین : 1



Alternative content







IranSkin go Up

تماس با ما

با اين دكمه كاري نداشته باشيد!!

بهترين كدها در صبادانلود


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره


آيکـُن هاي ِ دختره